// #include <iostream>
// #include<fstream>
// #include <string>
//
// using namespace std;
//
// void test_ascii_file()
// {
//     fstream read("a.txt",ios::in|ios::out||ios::trunc||ios::binary);
//
//     if (!read)
//     {
//         cout << "打开文件失败" << endl;
//     }
//
//     // while (!read.eof())
//     // {
//     //     cout <<char(read.get());
//     // }
//     // char str[1024]="";
//     // while (true)
//     // {
//     //     read.getline(str,1024);
//     //     if (read.eof())
//     //     {
//     //         break;
//     //     }
//     //     cout << str << endl;
//     // }
//
//     string str="i love you";
//     read.write(str.c_str(),sizeof(str));
//
//
//     read.close();
//
// }
//
// //流操作符
// class MM
// {
// public:
//     MM(string name="1",int age=1,int no=1):name(name),age(age),no(no)
//     {
//
//     }
//     string get_name()
//     {
//         return name;
//     }
//
//     int get_age()
//     {
//         return age;
//     }
//
//     int get_no()
//     {
//         return no;
//     }
//
//     void set_data(string name,int age,int no)
//     {
//         this->age = age;
//         this->name = name;
//         this->no = no;
//     }
//     void print_data()
//     {
//         cout << name << age << no << endl;
//     }
// protected:
//     string name;
//     int age;
//     int no;
// };
// void test_stream_file()
// {
//   fstream out("stream.txt",ios::app);
//     if (!out)
//     {
//         cout << "文件打开失败" << endl;
//     }
//     MM arr[3] = {
//         {"消防",1,2},
//         {"xao",2,3},
//         {"sss",3,23}
//     };
//
//     for (auto v: arr)
//     {
//         out << v.get_name() << " " << v.get_age() << " " << v.get_no() << endl;
//     }
//
//     out.close();
//
//     fstream in("stream.txt",ios::in);
//     MM temp;
//     string name;
//     int age;
//     int no;
//     while (true)
//     {
//         in >> name >> age >> no;
//         if (in.eof())
//         {
//             break;
//         }
//         temp.set_data(name,age,no);
//         temp.print_data();
//     }
//     in.close();
//
// }
//
// void test_binary_file()
// {
//     fstream out("binary.txt",ios::out |ios::trunc|ios::binary);
//     if (!out)
//     {
//         cout << "文件打开失败" << endl;
//     }
//     MM arr[3] = {
//         {"消防",1,2},
//         {"xao",2,3},
//         {"sss",3,23}
//     };
//
//     out.write((char*)arr,sizeof(MM) * 3);
//
//     out.close();
//
//     fstream in("binary.txt",ios::in);
//     MM temp[3];
//     in.read((char*)temp,sizeof(MM) *3);
//     for (auto v: temp)
//     {
//         v.print_data();
//     }
//     in.close();
// }
//
//
//
// int main()
// {
//     // test_stream_file();
//     test_binary_file();
//     return 0;
// }